Byte code Transformations for Distributed Threads in Java

نویسندگان

  • Eddy Truyen
  • Danny Weyns
  • Pierre Verbaeten
چکیده

In this paper, we study the shift of thread semantics that arises when adapting a centralized Java program for execution in a distributed environment. More specifically we focus on distributed applications that are developed by means of a distributed control flow programming model like Java RMI or OMG CORBA. The shift in thread semantics causes unexpected execution results or run-time errors if these differences were not taken into account by the programmer. We overcome this semantical gap between local and distributed programming by extending Java programming with the notion of distributed thread identity. Propagation of a globally unique, distributed thread identity provides a uniform mechanism by which all the program’s constituent objects involved in a distributed control flow can uniquely refer to that distributed thread as one and the same computational entity. We have implemented distributed thread identity by means of byte code transformation of application programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Distributed Threads in Java

In this paper, we study the problems of thread identity that arise with adapting a local Java program for execution in a distributed environment. When using a distributed control flow programming model like Java RMI or OMG CORBA, the programmer should take into account an inherent shift of semantics. We experienced a particular problem with shift of thread semantics when extending a serializati...

متن کامل

Byte Code Engineering

The term “Java” is used to denote two different concepts: the language itself and the related execution environment, the Java Virtual Machine (JVM), which executes byte code instructions. Several research projects deal with byte code-generating compilers or the implementation of new features via byte code transformations. Examples are code optimization, the implementation of parameterized types...

متن کامل

Extending Camelot with Mutable State and Concurrency

Camelot is a resource-bounded functional programming language which compiles to Java byte code to run on the Java Virtual Machine. We extend Camelot to include language support for Camelot-level threads which are compiled to native Java threads. We extend the existing Camelot resource-bounded type system to provide safety guarantees about the heap usage of Camelot threads.

متن کامل

Automatically exploiting implicit parallelism in Java

In this paper we show how implicit parallelism in Java programs can be made explicit by a restructuring compiler using the multi-threading mechanism of the language. In particular, we focus on automatically exploiting implicit parallelism in loops and multi-way recursive methods. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After...

متن کامل

Automatically Exploiting Implicit Parallelism in Multi-way Recursive Methods in Java

In this paper we show how implicit parallelism in multi-way recursive methods, typically used to implement tree traversal or divide-and-conquer algorithms, can be made explicit by a restructuring compiler using the multi-threading mechanism of Java. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After compilation of the transformed...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001